package net.intellect.collectpro.objects;


import net.intellect.collectpro.util.Parametros;

import com.sforce.soap.enterprise.ID;
import com.sforce.soap.enterprise.sobject.Cobro__c;

/* Objeto que contiene un objeto cobro__c de salesforce y campos 
 * requeridos para el proceso de asignacion.
 */

public class Cobro {
	private Cobro__c cobro__c;
    private boolean asignado   = false;
    private boolean esNuevo    = true;    
    private ID idProducto = null;
    private ID idRecordTypeLlamada = null;
    private int score = -1;
    private boolean marca   = false; //Para indicar alguna bandera    
	
	public Cobro() {		
	}
	
	public Cobro(Cobro__c cobro__c) {
		this.cobro__c = cobro__c;
		if (cobro__c.getInfo_Cuenta__r()!=null && !Double.isNaN(cobro__c.getInfo_Cuenta__r().getScore__c())) {
			score = (int)cobro__c.getInfo_Cuenta__r().getScore__c();
		}
		
		/**
		 * BORRAR ES SOLO DE PRUEBAS DE SCORE ALCANCE
		 */
		//int numeroAleatorio = (int) (Math.random()*1000+1);
		//score = numeroAleatorio;
		/**
		 * FIN DE BORRA
		 * 
		 */
		
	}	
	
	public Cobro__c getCobro__c() {
		return cobro__c;
	}
	
	public void setCobro__c(Cobro__c cobro__c) {
		this.cobro__c = cobro__c;
	}
	public boolean isAsignado() {
		return asignado;
	}
	public void setAsignado(boolean asignado) {
		this.asignado = asignado;
	}
	public boolean isEsNuevo() {
		return esNuevo;
	}
	public void setEsNuevo(boolean esNuevo) {
		this.esNuevo = esNuevo;
	}
	
	public double getPagoContadoConsolidado() {
		double pagoLocal = !Double.isNaN(this.getCobro__c().getTC_Pago_Contado_Local__c())?this.getCobro__c().getTC_Pago_Contado_Local__c():0;
		double pagoUSD = !Double.isNaN(this.getCobro__c().getTC_Pago_Contado_USD__c())?this.getCobro__c().getTC_Pago_Contado_USD__c():0;
		return pagoLocal + pagoUSD * Parametros.TIPO_CAMBIO;
	}

	public ID getIdProducto() {
		return idProducto;
	}

	public void setIdProducto(ID idProducto) {
		this.idProducto = idProducto;
	}

	public ID getIdRecordTypeLlamada() {
		return idRecordTypeLlamada;
	}

	public void setIdRecordTypeLlamada(ID idRecordTypeLlamada) {
		this.idRecordTypeLlamada = idRecordTypeLlamada;
	}

	public int getScore() {
		return score;
	}

	public void setScore(int score) {
		this.score = score;
	}

	public boolean isMarca() {
		return marca;
	}

	public void setMarca(boolean marca) {
		this.marca = marca;
	}			
	
}
